Fanbook SDK接入文档
#
集成#
向FanBook注册您的应用程序请到开发者平台 应用管理页面 创建应用。创建完成并选择新建的应用,将获得Fanbook clientID,可立即用于开发。
#
下载SDKSDK 仅包含一个fanbook-sdk-x.x.x.aar
文件,请点击 FanBookSDK下载 获取最新 SDK。
#
导入SDK- (1)找到您的App工程下的
libs
文件夹,将下载的压缩文件中的的aar文件fanbook-sdk-x.x.x.aar
拷贝到该目录下。 - (2)然后在项目根目录下面的
build.gradle
文件中,添加本地的libs
目录作为本地仓库,如下所示。
repositories { flatDir { dirs 'libs' }}
- (3)最后在Android Studio中找到您的App所在的module目录,修改它的
build.gradle
文件,在dependencies下面添加SDK的依赖,如下所示。
...dependencies { implementation(name: 'fanbook-sdk-x.x.x', ext: 'aar')}...
如果您使用的Android Studio版本低于3.0,那么请按照下面的方式修改App所在Module的build.gradle
文件。
...dependencies { compile files('libs/fanbook-sdk-x.x.x.aar')}...
#
添加SDK需要的配置找到您的App所在module的目录,修改AndroidManifest.xml
文件,在application标签下添加配置:
<activity android:name="com.fanbook.sdk.view.activity.FanbookEntryActivity" android:launchMode="singleTask"> <intent-filter> <data android:scheme="fanbook${PACKAGE_SCHEMA}${FANBOOK_CLIENTID}" /> <category android:name="android.intent.category.DEFAULT" /> <action android:name="android.intent.action.VIEW" /> <category android:name="android.intent.category.BROWSABLE" /> </intent-filter></activity>
<provider android:name="com.fanbook.sdk.provider.FanbookProvider" android:authorities="${applicationId}.provider.FanbookProvider" android:exported="false" android:grantUriPermissions="true"> <meta-data android:name="android.support.FILE_PROVIDER_PATHS" android:resource="@xml/fanbook_provider_paths" /></provider>
<meta-data android:name="fanbook.clientid" android:value="fanbook_${FANBOOK_CLIENTID}" />
将配置中所有的${applicationId}替换为应用包名
将配置中所有的${PACKAGE_SCHEMA}替换为包名去掉"."符号后的字符串
如应用包名:com.fanbook.sdk
去掉.后的结果:comfanbooksdk
将配置中所有的${FANBOOK_CLIENTID}替换为Fanbook clientID
#
混淆配置如果您开启了混淆,请加入下面的配置:
-dontwarn com.fanbook.sdk.**-keep class com.fanbook.sdk.** {*;}
#
API#
注册接入场景描述:
注册Fanbook sdk,在调用其它接口前必须先完成注册接口调用
功能说明:
功能名称 | 调用类型 | 功能标识 | 说明 |
---|---|---|---|
注册 | 同步调用 | registerApp | - |
参数 map 说明:
参数名 | 类型 | 是否必传 | 说明 | 备注 |
---|---|---|---|---|
context | Context | 是 | - | - |
示例:
FanbookApi.get().registerApp(context);
#
获取版本号接入场景描述:
获取fanbook sdk版本号
功能说明:
功能名称 | 调用类型 | 功能标识 | 说明 |
---|---|---|---|
获取版本号 | 同步调用 | getSDKVersion | - |
示例:
String version = FanbookApi.get().getSDKVersion();
#
是否安装了Fanbook APP接入场景描述:
判断设备是否安装了Fanbook APP
功能说明:
功能名称 | 调用类型 | 功能标识 | 说明 |
---|---|---|---|
是否安装了Fanbook APP | 同步调用 | isFanbookAppInstalled | - |
示例:
boolean isFanbookAppInstalled = FanbookApi.get().isFanbookAppInstalled(context);if(isFanbookAppInstalled){ //fanbook app已安装}else{ //fanbook app未安装}
#
打开Fanbook App接入场景描述:
打开Fanbook App
功能说明:
功能名称 | 调用类型 | 功能标识 | 说明 |
---|---|---|---|
打开Fanbook App | 同步调用 | openFanbookApp | - |
参数 map 说明:
参数名 | 类型 | 是否必传 | 说明 | 备注 |
---|---|---|---|---|
url | String | 否 | 邀请链接 | 打开Fanbook App后会自动跳转到该服务器和频道(如果未加入服务器会邀请加入) |
示例:
HashMap<String, String> map = new HashMap<>();map.put("url", url);
FanbookApi.get().openFanbookApp(map, new CallBack() { @Override public void onSuccess(String msg, Object data) { //打开Fanbook App成功 }
@Override public void onFail(int code, String msg, Object data) { //打开Fanbook App失败 }});
#
打开圈子(弃用)接入场景描述:
打开Fanbook圈子
功能说明:
功能名称 | 调用类型 | 功能标识 | 说明 |
---|---|---|---|
打开圈子 | 同步调用 | openFanbookZone | - |
参数 map 说明:
参数名 | 类型 | 是否必传 | 说明 | 备注 |
---|---|---|---|---|
serverId | String | 是 | Fanbook服务器ID | - |
channelId | String | 是 | Fanbook Channel ID |
示例:
FanbookApi.get().openFanbookZone(serverId,channelId);
#
打开网页接入场景描述:
通过url打开指定网页
功能说明:
功能名称 | 调用类型 | 功能标识 | 说明 |
---|---|---|---|
打开网页 | 同步调用 | openUrl | - |
参数 map 说明:
参数名 | 类型 | 是否必传 | 说明 | 备注 |
---|---|---|---|---|
url | String | 是 | 网页地址 | - |
示例:
FanbookApi.get().openUrl(url);
#
获取授权码接入场景描述:
获取Fanbook APP授权码
功能说明:
功能名称 | 调用类型 | 功能标识 | 说明 |
---|---|---|---|
获取授权码 | 异步调用 | SendAuth | - |
参数 map 说明:
参数名 | 类型 | 是否必传 | 说明 | 备注 |
---|---|---|---|---|
inviteCode | String | 否 | Fanbook服务器邀请码。当玩家不在官方服务器时,使用此邀请码邀请玩家加入 | - |
guildId | String | 否 | Fanbook服务器ID | - |
示例:
AuthObject authObject = new AuthObject();authObject.setInviteCode(inviteCode);authObject.setGuildId(guildId);FanbookApi.get().sendReq(new SendAuth.Req(authObject), new CallBack<String>() { @Override public void onSuccess(String msg, String data) { //获取授权成功,授权码=data }
@Override public void onFail(int code, String msg, Object data) { //获取授权码失败 }});
#
分享#
图片接入场景描述:
分享图片到Fanbook APP
功能说明:
功能名称 | 调用类型 | 功能标识 | 说明 |
---|---|---|---|
图片分享 | 异步调用 | ImageObject | - |
参数 map 说明:
参数名 | 类型 | 是否必传 | 说明 | 备注 |
---|---|---|---|---|
desc | String | 否 | 描述字符串 | - |
inviteCode | String | 是 | Fanbook服务器邀请码。当玩家不在官方服务器时,使用此邀请码邀请玩家加入 | - |
guildId | String | 是 | Fanbook服务器ID | - |
image | String | 是 | 图片的网络地址或本地路径或图片的二进制数据,需将byte[]转换成String类型 | byte[]数据类型内容大小不超过10MB |
示例:
ImageObject imageObject = new ImageObject();imageObject.setDesc(desc);imageObject.setInviteCode(inviteCode);imageObject.setGuildId(guildId);imageObject.setImage(image);
FanbookApi.get().sendReq(new SendShare.Req(imageObject), new CallBack<String>() { @Override public void onSuccess(String msg, String data) { //分享成功 }
@Override public void onFail(int code, String msg, Object data) { //分享失败 }});
#
链接接入场景描述:
分享链接到Fanbook APP
功能说明:
功能名称 | 调用类型 | 功能标识 | 说明 |
---|---|---|---|
链接分享 | 异步调用 | LinkObject | - |
参数 map 说明:
参数名 | 类型 | 是否必传 | 说明 | 备注 |
---|---|---|---|---|
desc | String | 否 | 描述字符串 | - |
inviteCode | String | 是 | Fanbook服务器邀请码。当玩家不在官方服务器时,使用此邀请码邀请玩家加入 | - |
guildId | String | 是 | Fanbook服务器ID | - |
image | String | 否 | 图片的网络地址或本地路径或图片的二进制数据,需将byte[]转换成String类型 | byte[]数据类型内容大小不超过10MB |
link | String | 是 | 链接url | - |
示例:
LinkObject linkObject = new LinkObject();linkObject.setDesc(desc);linkObject.setInviteCode(inviteCode);linkObject.setGuildId(guildId);linkObject.setImage(image);linkObject.setLink(link);
FanbookApi.get().sendReq(new SendShare.Req(linkObject), new CallBack<String>() { @Override public void onSuccess(String msg, String data) { //分享成功 }
@Override public void onFail(int code, String msg, Object data) { //分享失败 }})
#
错误码错误码 | 描述 |
---|---|
0 | 成功 |
-10000 | 未知失败 |
-10001 | 未安装fanbook app |
-10002 | 安装的fanbook app版本过低 |
-10003 | 参数缺少或错误 |